package com.vortex.cloud.zhsw.xinyang.service;

import org.springframework.http.ResponseEntity;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author huohao@vortexinfo.cn
 * @date 2022/3/22 10:00
 */
public interface ExportService {
    /**
     * 导出Excel
     *
     * @param fileName   导出文件名称
     * @param extension  文件类型
     * @param columnJson 导出字段
     * @param records    记录
     * @param downMap 下拉选
     * @param exportType 导出类型 1-模板 2-数据
     * @return org.springframework.http.ResponseEntity<byte [ ]>
     * @author huohao@vortexinfo.cn
     */
    <T> ResponseEntity<byte[]> exportExcel(String fileName, String extension, String columnJson, List<T> records, HashMap<Integer, String[]> downMap, Integer exportType);

    /**
     * 导出Excel
     *
     * @param fileName   导出文件名称
     * @param extension  文件类型
     * @param columnJson 导出字段
     * @param records    记录
     * @param downMap 下拉选
     * @param exportType 导出类型 1-模板 2-数据
     * @param tenantId 租户
     * @param facilityType 基础设施类型
     * @return org.springframework.http.ResponseEntity<byte [ ]>
     * @author huohao@vortexinfo.cn
     */
    <T> ResponseEntity<byte[]> exportExcel(String fileName, String extension, String columnJson, List<T> records,
                                           HashMap<String, String[]> downMap, Integer exportType,
                                           String tenantId,String facilityType);

    /**
     * 导出Excel（动态表头）
     *
     * @param fileName   导出文件名称
     * @param extension  文件类型
     * @param columnJson 导出字段
     * @param records    记录
     * @param downMap 下拉选
     * @param extandData 扩展字段
     * @return org.springframework.http.ResponseEntity<byte [ ]>
     * @author huohao@vortexinfo.cn
     */
    <T> ResponseEntity<byte[]> exportExcelDynamics(String fileName, String extension, String columnJson, List<T> records, HashMap<Integer, String[]> downMap, List<Map<String,String>> extandData,Boolean isMergeFlowAnalyse);


}
